package d1_innerclass01;
//成员内部类是属于
public class Outer {
    //定义静态成员
    public static String schoolName = "深圳黑马培训基地";

    public static void method() {
        System.out.println("外部类的静态成员");
    }

    //定义实例成员
    private String hobby;
    private double height;

    public void method1() {
        System.out.println("外部类实例成员");
    }

    //成员内部类(普通类有的,它都可以有)
    //特点: 无static修饰, 属于外部类的对象持有
    //必须存在外部类对象,才会有这个内部类
    public class Inner {
        private String name;
        private int age;

        public Inner() {
        }

        //拓展: 成员内部类访问外部类的成员特点
        public void show() {
            //1.成员内部类中,是否可以直接访问外部类的静态成员??可以
            System.out.println(schoolName);
            method();//同一个类中访问静态成员是可以省略类名的


            //2.成员内部类中,是可以直接访问外部类的实例成员?? 可以
            System.out.println(hobby);
            System.out.println(height);

            method1();//答案是可以,其实可以将成员内部类,看做一个普通的成员




        }

        public Inner(String name, int age) {
            this.name = name;
            this.age = age;
        }
        //get与set方法

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }
    }
}
